/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;

import java.util.ArrayList;
import java.util.List;
import media.Auteur;
import media.Media;

/**
 * MediaDAO abstrait qui permet de gérer les médias utilisant des auteurs
 * @author Florian Minin & Khémon Beh
 */
public abstract class MediaDAOAuteur<K extends Media> implements  MediaDAO<K>{
    protected List<Auteur> listeAuteurs;

    public MediaDAOAuteur(){
        super();
        listeAuteurs = new ArrayList<Auteur>();
    }

    /**
     * Ajoute un auteur a la liste des auteurs
     * @param auteur auteur a ajouter
     */
    public void ajouterAuteur(Auteur auteur){
        listeAuteurs.add(auteur);
    }

    /**
     * Supprime un auteur
     * @param auteur auteur a supprimer
     */
    public void supprimerAuteur(Auteur auteur){
        if (listeAuteurs.contains(auteur)){
            listeAuteurs.remove(auteur);
        }
    }

    public List<Auteur> getListeAuteur(){
        return listeAuteurs;
    }

    /**
     * Vérifie si un auteur existe déja dans la liste
     * des auteurs du DAO.
     * @param a auteur dont on veut vérifier la présence
     * @return True si il existe. False sinon.
     */
    public boolean contientAuteur(Auteur a){
        boolean contient = false;
        for(Auteur auteur:listeAuteurs){
            if(auteur.equals(a)){
                contient = true;
                break;
            }
        }
        return contient;
    }
}
